package com.hhkj.admin.bank.service.biz;

import com.hhkj.admin.bank.domain.Bank;
import com.hhkj.admin.bank.model.req.BankReq;
import com.hhkj.admin.bank.model.req.BankRuleReq;
import com.hhkj.admin.bank.model.res.BankPublishRes;
import com.hhkj.admin.bank.model.res.BankRes;
import com.ruoyi.common.base.biz.service.biz.BaseBizService;
import org.apache.poi.ss.usermodel.Workbook;

import java.util.List;

/**
 * BankBizService
 *
 * @author HHKJ-SERVER-ZJ
 * @since 2023/6/8 11:32
 */
public interface BankBizService extends BaseBizService<Bank, BankReq, BankRes>
{

    /**
     * 发布单个题库
     *
     * @param req 请求信息
     * @return 题库信息
     */
    BankPublishRes publish(BankReq req);

    /**
     * 获取规则些发布得题库列表信息
     *
     * @param bank 题库信息
     * @return 题库列表，包含未上架得科目
     */
    List<BankRes> listAllCoursePublishOfRule(BankReq bank);

    /**
     * 根据规则信息更新题库信息
     *
     * @param req 题库信息
     */
    void updateBankByRule(BankRuleReq req);

    /**
     * 题库上下架
     *
     * @param id          id
     * @param publishFlag 上架标签 1-是 0-否
     * @return true/false
     */
    boolean updatePublishFlag(Long id, Integer publishFlag);

    /**
     * 修改名称
     *
     * @param id   请求信息
     * @param name 名称
     * @return true/false
     */
    boolean updateName(Long id, String name);

    /**
     * 根据条件获取题库 题目信息列表
     *
     * @param req 条件信息
     * @return 创建题库题目模板
     */
    Workbook createBankQuestionImportTemplate(BankReq req);

    /**
     * 导出问题
     * @param req
     * @return
     */
    Workbook createExportQuestion(BankReq req);
}
